#pragma once

#ifdef _WIN32

#include "windowsfix.h"

namespace one_rag {
  namespace App {
    namespace impl {


      struct Win32Window : WindowBase
      {
        Win32Window();
        ~Win32Window();

      public: // Standard API
        bool Create(char const* name, ePositionType pos = windowPosDefault, int w=-1, int h=-1);

      protected: // implementation
        static LRESULT CALLBACK SWindowProc(HWND,UINT,WPARAM,LPARAM);
        virtual LRESULT WindowProc(UINT,WPARAM,LPARAM);
      private:
        HWND _hwnd;
      };

      typedef Win32Window WindowDefault;

    }
  }
}

#endif
